As the value and use of information continue to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, an information handling system may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
An information handling system can be configured in several different configurations ranging from a single, stand-alone computer system to a distributed, multi-device computer system, to a networked computer system with remote or cloud storage systems.
Two or more information handling systems may communicate with one another via an Ethernet, or another suitable Internet protocol (IP) network, in compliance with a priority flow control (PFC) protocol. Such a network may be implemented with physical transmission media interconnected by a plurality of network devices including packet switching devices. A packet switching device may be implemented as a shared-memory switch.
A shared-memory switch may include a plurality of ports, each capable of sustaining high speed serial communication with one or more neighboring network devices or peers. Each port may be able to support multiple queues. Packets communicated to and from a shared-memory switch may be associated with traffic flows, each of which may be associated with a level of priority indicated by one or more bits in a packet header. To maintain generality, the shared-memory switch may be configured to accommodate all supported traffic flows, i.e., all supported levels of priority, across all ports.
PFC networks support a PAUSE command or frame that instructs the recipient of the PAUSE command to suspend transmission of packets to the sender of the PAUSE command. To accommodate post-PAUSE transactions, i.e., packets transmitted by the recipient of the PAUSE command during an interval that includes the time required for the PAUSE command to traverse the link or set of links between the neighboring devices, and the time required for the recipient to actually act on that command, the shared-memory switch allocates special purpose buffers, referred to as headroom buffers.
To maintain adequate performance, buffers, whether used for regular burst absorption or headroom, may be implemented in semiconductor random access memory (RAM). The comparatively high cost of RAM, however, generally imposes a constraint on the maximum amount of RAM that may be included within any shared-memory switch. Accordingly, the importance of using the available RAM in a shared-memory switch efficiently is very high and ever increasing, as the design of shared-memory switches continues to push the performance envelop.